package org.tech4j.common.core.sign.service;

import jakarta.servlet.http.HttpServletRequest;
import org.tech4j.common.core.sign.api.AppSignData;
import org.tech4j.common.core.sign.api.VerifyResult;

/**
 * @program: tech4j-common
 * @description:
 * @author: YuKai Fan
 * @create: 2025/3/2 19:31
 **/
public interface SignService {

    /**
     * Gets verifyResult.
     * @param signData signData
     * @param requestBody requestBody
     * @return result
     */
    VerifyResult signatureVerify(AppSignData signData, String requestBody);

    /**
     * Gets verifyResult.
     * @param signData signData
     * @param request request
     * @return result
     */
    VerifyResult signatureVerify(AppSignData signData, HttpServletRequest request);

    /**
     * Gets verifyResult.
     * @param signData signData
     * @param request request
     * @param paramType paramType
     * @param paramKey paramKey
     * @return result
     */
    VerifyResult signatureVerify(AppSignData signData, HttpServletRequest request, String paramType, String paramKey);
}
